﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Business_Entity;
using Business_Logic;

namespace PetSoft.GUI.RRHH
{
    public partial class GUIReporteEmpleados : Form
    {
        private Form ventanaPopUp;
        private List<BEEmpleado> lista;
    	
    	public GUIReporteEmpleados()
        {
    		try
    		{
	            InitializeComponent();
	            this.nombreTB.KeyPress += new KeyPressEventHandler(Utils.SoloLetrasTB);
	            this.apPaternoTB.KeyPress += new KeyPressEventHandler(Utils.SoloLetrasTB);
	            this.apMaternoTB.KeyPress += new KeyPressEventHandler(Utils.SoloLetrasTB);
	            this.docIdentidadTB.KeyPress += new KeyPressEventHandler(Utils.SoloNumerosTB);
	            
	            this.cargoCB.Items.AddRange(new object[] {
										"<Seleccionar>"});
				this.cargoCB.Text = "<Seleccionar>";
    		}
    		catch (Exception ex)
			{
				MessageBox.Show("Error: " + ex,"Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
			}
        }
        
        private void cerrarPopUp(object sender, EventArgs e){
    		try
    		{
				this.ventanaPopUp = null;
    		}
    		catch (Exception ex)
			{
				MessageBox.Show("Error: " + ex,"Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
			}
		}
        
        void buscarClick(object sender, EventArgs e)
        {
        	try
        	{
				BLEmpleado bl = new BLEmpleado();
				List<BEEmpleado> be = new List<BEEmpleado>();
				
				List<String> datos = new List<String>();
				datos.Add(nombreTB.Text);
				datos.Add(apPaternoTB.Text);
				datos.Add(apMaternoTB.Text);
				datos.Add(areaCB.Text);
				datos.Add(cargoCB.Text);
				datos.Add(docIdentidadTB.Text);
				datos.Add(sexoCB.Text);
				for (int i=0; i<datos.Count; i++)
				{
					if ((datos[i] == null) || (datos[i] == "<Seleccionar>"))
						datos[i] = "";
				}
				be = bl.buscarEmpleado(datos[0], datos[1], datos[2], datos[3], datos[4], datos[5],
				                       datos[6]);
				if (be != null)
				{
					this.lista = be;
					if (ventanaPopUp == null){				
        				GUIMostrarReporteEmpleado ventanaReporteEmpleado = new GUIMostrarReporteEmpleado();
        				ventanaReporteEmpleado.Lista = this.lista;
						this.ventanaPopUp = ventanaReporteEmpleado;
						this.ventanaPopUp.Closed += new System.EventHandler(this.cerrarPopUp);
						this.ventanaPopUp.ShowDialog();
					}
				}
				else
				{
					MessageBox.Show("No hay resultados para el reporte.","Aviso", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
				}
			}
			catch (Exception ex)
			{
				MessageBox.Show("Error: " + ex,"Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
			}
        }
        
        void habilitarCargo(object sender, EventArgs e)
        {
        	try
			{
	        	if (areaCB.Text != "<Seleccionar>")
	        	{
	        		this.sexoCB.Text = "<Seleccionar>";
	        		
	        		this.cargoCB.Enabled = true;
	        		this.cargoCB.Items.Clear();
	        		this.cargoCB.Items.AddRange(new object[] {
										"<Seleccionar>"});
	        		
	        		BLCargo bl = new BLCargo();
	        		  		 
	        		List<BECargo> lista = bl.obtenerCargo(this.areaCB.Text);
	        		
	        		if (lista != null)
		        	{
	        			for(int i=0; i<lista.Count; i++)
	        				this.cargoCB.Items.Add(lista[i].Descripcion);
	        			this.cargoCB.Text = "<Seleccionar>";
		        	}
		        	else
		        	{
		        		//MessageBox.Show("Error cargando datos de la BD","Error");
		        	}
		        }
	        	else
	        	{
	        		this.cargoCB.Enabled = false;
	        	}
			}
			catch (Exception ex)
			{
				MessageBox.Show("Error: " + ex,"Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
			}
        }
        
        void GUIReporteEmpleadosLoad(object sender, EventArgs e)
        {
        	try
			{
	        	this.sexoCB.Text = "<Seleccionar>";
				BLArea bl = new BLArea();
	  	
	        	List<BEArea> lista = bl.obtenerArea();
	   	
	          	if (lista != null)
	        	{
	          		for(int i=0; i<lista.Count; i++)
	        			this.areaCB.Items.Add(lista[i].Descripcion);
	          		this.areaCB.Text = "<Seleccionar>";
	        	}
	        	else
	        	{
	        		//MessageBox.Show("Error cargando datos de la BD","Error");
	        	}
			}
			catch (Exception ex)
			{
				MessageBox.Show("Error: " + ex,"Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
			}
        }
        
        void limpiarClick(object sender, EventArgs e)
        {
        	try
			{
				this.nombreTB.Text = "";
				this.apPaternoTB.Text = "";
				this.apMaternoTB.Text = "";
				this.areaCB.Text = "<Seleccionar>";
				this.cargoCB.Text = "<Seleccionar>";
				this.docIdentidadTB.Text = "";
				this.sexoCB.Text = "<Seleccionar>";
			}
			catch (Exception ex)
			{
				MessageBox.Show("Error: " + ex,"Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
			}
        }
    }
}
